package com.clarence.dada.core.base;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * <p>
 * 请求基类
 * <p>
 * 所有接口请求可继承此类
 *
 * @author GD
 * @since 2024/1/9
 */
@Data
@Tag(name = "请求基类", description = "请求基类")
public class BaseReq implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 分页：每页大小（默认20）
     */
    @Schema(title = "每页大小", example = "20")
    private Integer pageSize;

    /**
     * 分页：第几页（从1开始）
     */
    @Schema(title = "第几页", example = "1")
    private Integer pageNo;

    /**
     * 参数校验分组：分页
     */
    public @interface page {
    }

    /**
     * 参数校验分组：查询所有
     */
    public @interface list {
    }

    /**
     * 参数校验分组：增加
     */
    public @interface add {
    }

    /**
     * 参数校验分组：编辑
     */
    public @interface edit {
    }

    /**
     * 参数校验分组：删除
     */
    public @interface delete {
    }

    /**
     * 参数校验分组：详情
     */
    public @interface detail {
    }

    /**
     * 参数校验分组：导出
     */
    public @interface export {
    }

    /**
     * 参数校验分组：修改状态
     */
    public @interface updateStatus {
    }

    /**
     * 参数校验分组：批量删除
     */
    public @interface batchDelete {
    }

}
